Mình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Thông báo
Collapse
No announcement yet.
{HELP} Dùng VDK tạo reset cho chính nó !
Collapse
X
-
8051 (89C51) bị reset ở mức 1 và khi nó đang reset thì các PORT 1,2,3 ở mức cao.Nguyên văn bởi thanhlonguit Xem bài viếtMình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Do đó nếu nối PORT1.2 vào chân Reset thì khi nó không thể thoát khỏi trạng thái reset được do PORT1.2 luôn là mức 1.
Có thể dùng kiểu khi có mức 0 ở chân P1.1 thì cho chạy lệnh ORG 0000H.
Comment
-
Vậy chưa phải là Reset vì các biến trong RAM, các ngoại vi sẽ không bị xóa... Rất có thể làm loạn chương trình...Nguyên văn bởi chung1608 Xem bài viếtreset cho VDK ko nhất thiết phải tác động vào chân reset, bạn có thể dùng lệnh nhảy lên đầu chương trình chính là xem như reset rồi
Bạn duong_act nói đúng 1 nửa (nửa trên)...Nguyên văn bởi duong_act Xem bài viết8051 (89C51) bị reset ở mức 1 và khi nó đang reset thì các PORT 1,2,3 ở mức cao.
Do đó nếu nối PORT1.2 vào chân Reset thì khi nó không thể thoát khỏi trạng thái reset được do PORT1.2 luôn là mức 1.
Có thể dùng kiểu khi có mức 0 ở chân P1.1 thì cho chạy lệnh ORG 0000H.
Nếu chỉ nhảy về đầu chương trình đã gọi là Reset thì sao người ta còn nghĩ ra Watchdog trong, Watchdog ngoài..
Cho triệt để nên dùng Watchdog ngoài. Đơn giản thì dùng mạch RC sao cho khi Reset Logic của chân PORT1.2 không tác động được vào chân Reset lập tức mà bị "hãm lại một chút", Xịn hơn thì dùng IC chuyên dụng, Vd MAX1232...Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
89 khi đang chạy mà bị reset cứng thì nó chỉ trả giá trị 0000h cho thanh ghi PC để trở về địa chỉ ORG 0000h thôi, giá trị của RAM vẫn đc giữa nguyên chỉ có các thanh ghi port mới trở về mặc định 0xFF.Nguyên văn bởi Acxen_lupine Xem bài viếtVậy chưa phải là Reset vì các biến trong RAM, các ngoại vi sẽ không bị xóa... Rất có thể làm loạn chương trình...
Bạn duong_act nói đúng 1 nửa (nửa trên)...
Nếu chỉ nhảy về đầu chương trình đã gọi là Reset thì sao người ta còn nghĩ ra Watchdog trong, Watchdog ngoài..
Cho triệt để nên dùng Watchdog ngoài. Đơn giản thì dùng mạch RC sao cho khi Reset Logic của chân PORT1.2 không tác động được vào chân Reset lập tức mà bị "hãm lại một chút", Xịn hơn thì dùng IC chuyên dụng, Vd MAX1232...
Comment
-
1. Đồng ý với các bạn là RESET ngoài hay bằng Watchdog trong sẽ không làm thay đổi giá trị hiện thời của INTERNAL RAM... cái này tôi nhầm, tôi đã xem lại!!!
2. Tuy nhiên nếu nói như bạn chung68:
Sẽ là thiếu vì tất cả các SFRs (chứ không phải chỉ có các port) sẽ đồng loạt trở về giá trị mặc định sau 2 chu kỳ máy.Nguyên văn bởi chung1608 Xem bài viết89 khi đang chạy mà bị reset cứng thì nó chỉ trả giá trị 0000h cho thanh ghi PC để trở về địa chỉ ORG 0000h thôi, giá trị của RAM vẫn đc giữa nguyên chỉ có các thanh ghi port mới trở về mặc định 0xFF.
3. Xin trả lời bạn duong_act:
Nhu cầu về Watchdog trong hay ngoài là nhằm đồng loạt đưa hệ thống (bao gồm CPU, SFRs...) về trạng thái mặc định ban đầu nhằm thoát khỏi 1 trạng thái xung đột hay bế tắc nào đó. (vd: tràn ngăn xếp chẳng hạn)
4. Tóm lại, ý của tôi là nếu làm theo cách của các bạn đưa ra (chỉ cho PC trỏ về 0000h) thì:
- Chỉ đơn thuần là làm cho chương trình được chạy lại từ đầu.
- Không giải quyết được vấn đề hệ thống đang rối loạn.
- không đạt mục đích của RESET đôi khi còn gây phản tác dụng. Cái phản tác dụng nhất ở đây là ngăn xếp sẽ tiếp tục đầy lên... nếu ta không nhớ xóa nó khi mới bắt đầu chương trình.
Tôi xin nhắc lại cái đáng giá nhất của RESET là việc đồng loạt đưa .... về trạng thái mặc định ban đầu, kể cả con trỏ ngăn xếp (SP), Thanh ghi Interrupt, Timer/Couter...Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Nếu là 89s thì bác có thể dùng thẳng wdt của nóNguyên văn bởi thanhlonguit Xem bài viếtMình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Còn nếu là 89c thì bác có thể mắc mạch 555 tạo xung, sau mỗi chu kỳ định sẵn thì đưa xung ra reset lại 555, nếu vì lý do nào đó mà 89 bị treo thì nó sẽ dc 555 reset lại- Mạch nạp vdk 8051, AVR, PIC, EEPROM
- Linh kiện điện tử cho sinh viên
Comment
-
Nhưng chủ top đâu có dùng để thoát trạng thái rối loạn hay mắc kẹt ở đâu đó mà là chủ ý reset khi có tác động mức 1 ở chân nào đó kia mà. Còn việc reset khi lỗi thì đượng nhiên là WDT rồi. Cái này thì không bàn cãi.Nguyên văn bởi Acxen_lupine Xem bài viết1. Đồng ý với các bạn là RESET ngoài hay bằng Watchdog trong sẽ không làm thay đổi giá trị hiện thời của INTERNAL RAM... cái này tôi nhầm, tôi đã xem lại!!!
2. Tuy nhiên nếu nói như bạn chung68:
Sẽ là thiếu vì tất cả các SFRs (chứ không phải chỉ có các port) sẽ đồng loạt trở về giá trị mặc định sau 2 chu kỳ máy.
3. Xin trả lời bạn duong_act:
Nhu cầu về Watchdog trong hay ngoài là nhằm đồng loạt đưa hệ thống (bao gồm CPU, SFRs...) về trạng thái mặc định ban đầu nhằm thoát khỏi 1 trạng thái xung đột hay bế tắc nào đó. (vd: tràn ngăn xếp chẳng hạn)
4. Tóm lại, ý của tôi là nếu làm theo cách của các bạn đưa ra (chỉ cho PC trỏ về 0000h) thì:
- Chỉ đơn thuần là làm cho chương trình được chạy lại từ đầu.
- Không giải quyết được vấn đề hệ thống đang rối loạn.
- không đạt mục đích của RESET đôi khi còn gây phản tác dụng. Cái phản tác dụng nhất ở đây là ngăn xếp sẽ tiếp tục đầy lên... nếu ta không nhớ xóa nó khi mới bắt đầu chương trình.
Tôi xin nhắc lại cái đáng giá nhất của RESET là việc đồng loạt đưa .... về trạng thái mặc định ban đầu, kể cả con trỏ ngăn xếp (SP), Thanh ghi Interrupt, Timer/Couter...
Comment
-
Thế thì bạn dạy người ta làm thế nào để Reset có chủ ý đi. Nhưng nhớ là họ cần reset chứ không phải chạy lại chương trình từ đầu đâu nhé... Hai khái niệm này hoàn toàn khác nhau.Nguyên văn bởi duong_act Xem bài viếtNhưng chủ top đâu có dùng để thoát trạng thái rối loạn hay mắc kẹt ở đâu đó mà là chủ ý reset khi có tác động mức 1 ở chân nào đó kia mà. Còn việc reset khi lỗi thì đượng nhiên là WDT rồi. Cái này thì không bàn cãi.
Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Hơ, cái này thì có khó gì đâu...Nguyên văn bởi duong_act Xem bài viếtỜ bạn chỉ tôi cách mà Reset không chạy lại chương trình từ đầu rồi tôi nói tiếp
Bạn thừa sức nghĩ ra mà... đúng 1 tháng nữa nếu bạn vẫn chưa nghĩ ra tôi sẽ lập 1 topic mới về vấn đề này. Nếu bạn nghĩ ra thì nhờ bạn dành chút thời gian để giảng giải cho những anh em chưa biết nhé.Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Tôi thì tôi gà nên tôi chịuNguyên văn bởi Acxen_lupine Xem bài viếtHơ, cái này thì có khó gì đâu...
Bạn thừa sức nghĩ ra mà... đúng 1 tháng nữa nếu bạn vẫn chưa nghĩ ra tôi sẽ lập 1 topic mới về vấn đề này. Nếu bạn nghĩ ra thì nhờ bạn dành chút thời gian để giảng giải cho những anh em chưa biết nhé.
Có gì cao kiến thì chia sẻ cùng anh em cái
Comment
Bài viết mới nhất
Collapse
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
Hôm qua, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
Hôm qua, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
Hôm qua, 11:20 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
02-02-2026, 21:13 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
02-02-2026, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
02-02-2026, 10:48 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -

Comment